import axios from "axios"
import {ElMessage} from "element-plus";

//设置请求头和后台接口超时时间
const request=axios.create({
    baseURL: "http://localhost:8080",
    timeout: 30000
})

//request 拦截器
//可以自请求发送前对请求做一些处理
request.interceptors.request.use(config =>{
        // 只有当数据不是 FormData 时，才设置 JSON 类型
        if (!(config.data instanceof FormData)) {
            config.headers['Content-Type'] = 'application/json;charset=UTF-8';
        }
         return config
}, error=>{
    return Promise.reject(error);
    }
);

//response
//可以在接口响应后统一处理结果
request.interceptors.response.use(response => {
    let res = response.data;
    //兼容服务端返回的字符串数据
    if(typeof res === 'string'){
        res=res?JSON.parse(res):res
    }
    return res;
},
    error=>{
    if(error.response.status===404){
        ElMessage.error("未找到请求接口")
    }else if(error.response.status===500){
        ElMessage.error("系统异常，请查看后端控制台报错")
    }else {
        console.log(error.message)
    }
    return Promise.reject(error)
    }
)

export default request;

